import { ref } from 'vue';
import { setStorage, getStorage } from '@/common/storage';
import { getWeiXinCode, wxLogin, getUserInfo } from '@/common/util';
// import { onShow } from "@dcloudio/uni-app";

const useLogin = (loginCallBack) => {

  // const isAuth = ref(false);
  // const openId = ref("");
  // const sessionKey = ref("");

  const loginSuccessCallback = (token) => {
    setStorage('token', token);
    getUserInfo().then(() => {
      if (loginCallBack) {
        loginCallBack();
      }
    }); 
  }
  const getphonenumber = (even) => {
    if (even.detail.errMsg === "getPhoneNumber:ok") {
      getWeiXinCode((code) => {
        const channel = getStorage("channel");
        wxLogin(even.detail, code, {openId: openId.value, sessionKey: sessionKey.value, channel: (channel && channel.value) ? channel.value : undefined}).then((token) => {
          loginSuccessCallback(token);
        });
      });
    } else if (even.detail.errMsg.indexOf('getPhoneNumber:fail') >= 0) {
      showToast('登录失败');
    }
  }
  // const openIdLogin = async ()=> {
  //   const channel = getStorage("channel");
  //   const response = await uni.$request.post(uni.$api.accessToken, {
	// 		isLoading: true,
	// 		data: {		
	// 			openId: openId.value,
  //       clientId: 'mini',
  //       grantType: 'wx-open-id',
  //       channel: (channel && channel.value) ? channel.value : undefined
	// 		},
	// 	});
  //   loginSuccessCallback(response);
  // }
  // const fetchOpenId = async (code) => {
  //   const response = await uni.$request.post(uni.$api.fetchOpenId, {
	// 		isLoading: false,
	// 		data: {		
	// 			wxCode: code
	// 		},
	// 	});
  //   openId.value = response.openId;
  //   sessionKey.value = response.sessionKey;
  //   isAuth.value = !!response.existFlag;
  //   return response;
  // }
  // const getPhonenumberSession = (even) => {
  //   wx.checkSession({
  //     success: () => {
  //       getphonenumber(even);
  //     },
  //     fail: () => {
  //       getWeiXinCode(async (code) => {
  //         const res = await fetchOpenId(code, even);
  //         if (res && res.existFlag) {
  //           getphonenumber(even);
  //         }
  //       });
  //     }
  //   })
  // }
  // const openIdCheckSession = () => {
  //   wx.checkSession({
  //     success: () => {
  //       openIdLogin();
  //     },
  //     fail: () => {
  //       getWeiXinCode(async (code) => {
  //         const res = await fetchOpenId(code, even);
  //         if (res && res.existFlag) {
  //           openIdLogin();
  //         }
  //       });
  //     }
  //   })
  // }
  // const getOpenId = () => {
  //   getWeiXinCode((code) => {
  //     fetchOpenId(code);
  //   });
  // }


  // onShow(() => {
  //   if (initRequest){
  //     getOpenId();
  //   }
  // })

  

  return {
    // getPhonenumberSession,
    // openIdCheckSession,
    // isAuth,
    // getOpenId
    getphonenumber
  }
}
export default useLogin;